/*
 *  Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
 *
 *  Redistribution and use in source and binary forms, with or without
 *  modification, are permitted provided that the following conditions are met:
 *
 *  Redistributions of source code must retain the above copyright notice,
 *  this list of conditions and the following disclaimer.
 *  Redistributions in binary form must reproduce the above copyright
 *  notice, this list of conditions and the following disclaimer in the
 *  documentation and/or other materials provided with the distribution.
 *  Neither the name of the dreamlu.net developer nor the names of its
 *  contributors may be used to endorse or promote products derived from
 *  this software without specific prior written permission.
 *  Author: Chill 庄骞 (smallchill@163.com)
 */
package com.plian.system.entity.yth.stafffiles;

import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.NullSerializer;
import com.plian.system.entity.yth.YthBaseEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;

import java.time.LocalDate;

/**
 * 监事会基本情况主表实体类
 *
 * @author zke
 * @since 2023-03-20
 */
@Data
@TableName("collection_supervisory_board")
@EqualsAndHashCode(callSuper = true)
@ApiModel(value = "SupervisoryBoard对象", description = "监事会基本情况主表")
public class SupervisoryBoard extends YthBaseEntity {

private static final long serialVersionUID = 1L;

        /**
     * 是否为本企业人员
     */
    @ApiModelProperty(value = "是否为本企业人员")
    @JsonSerialize(nullsUsing = NullSerializer.class)
    private Byte isEnterprisePersonnel;
    /**
     * 监事职务
     */
    @ApiModelProperty(value = "监事职务")
    @JsonSerialize(nullsUsing = NullSerializer.class)
    private Byte supervisoryPosition;
    /**
     * 选择员工档案
     */
    @ApiModelProperty(value = "选择员工档案")
    private String employeeFile;
    /**
     * 员工档案id
     */
    @ApiModelProperty(value = "员工档案id")
    @JsonSerialize(nullsUsing = NullSerializer.class)
    private Long employeeFileId;
    /**
     * 姓名
     */
    @ApiModelProperty(value = "姓名")
    private String name;
    /**
     * 性别
     */
    @ApiModelProperty(value = "性别")
    @JsonSerialize(nullsUsing = NullSerializer.class)
    private Byte sex;
    /**
     * 出生日期
     */
    @ApiModelProperty(value = "出生日期")
    private LocalDate birthday;
    /**
     * 证件类型
     */
    @ApiModelProperty(value = "证件类型")
    @JsonSerialize(nullsUsing = NullSerializer.class)
    private Byte certificatesType;
    /**
     * 证件号码
     */
    @ApiModelProperty(value = "证件号码")
    private String certificatesNumber;
    /**
     * 民族
     */
    @ApiModelProperty(value = "民族")
    @JsonSerialize(nullsUsing = NullSerializer.class)
    private Byte nation;
    /**
     * 政治面貌
     */
    @ApiModelProperty(value = "政治面貌")
    @JsonSerialize(nullsUsing = NullSerializer.class)
    private Byte political;
    /**
     * 国籍
     */
    @ApiModelProperty(value = "国籍")
    @JsonSerialize(nullsUsing = NullSerializer.class)
    private Byte nationality;
    /**
     * 籍贯
     */
    @ApiModelProperty(value = "籍贯")
    private String nativePlace;
    /**
     * 入党/团时间
     */
    @ApiModelProperty(value = "入党/团时间")
    private LocalDate joinDate;
    /**
     * 婚姻状态
     */
    @ApiModelProperty(value = "婚姻状态")
    @JsonSerialize(nullsUsing = NullSerializer.class)
    private Byte maritalStatus;
    /**
     * 健康状态
     */
    @ApiModelProperty(value = "健康状态")
    @JsonSerialize(nullsUsing = NullSerializer.class)
    private Byte healthStatus;
    /**
     * 最高学历
     */
    @ApiModelProperty(value = "最高学历")
    @JsonSerialize(nullsUsing = NullSerializer.class)
    private Byte highestEducation;
    /**
     * 最高学位
     */
    @ApiModelProperty(value = "最高学位")
    @JsonSerialize(nullsUsing = NullSerializer.class)
    private Byte highestDegree;
    /**
     * 专业技术职务
     */
    @ApiModelProperty(value = "专业技术职务")
    private String technicalPosition;
    /**
     * 职业资格
     */
    @ApiModelProperty(value = "职业资格")
    private String professionalQualification;
    /**
     * 参加工作时间
     */
    @ApiModelProperty(value = "参加工作时间")
    private LocalDate workingDate;
    /**
     * 联系电话
     */
    @ApiModelProperty(value = "联系电话")
    private String linkPhone;
    /**
     * 电子邮箱
     */
    @ApiModelProperty(value = "电子邮箱")
    private String email;
    /**
     * 工作电话
     */
    @ApiModelProperty(value = "工作电话")
    private String workPhone;
    /**
     * 家庭住址
     */
    @ApiModelProperty(value = "家庭住址")
    private String address;
    /**
     * 出生地
     */
    @ApiModelProperty(value = "出生地")
    private String birthplace;
    /**
     * 户籍所在地
     */
    @ApiModelProperty(value = "户籍所在地")
    private String registeredResidence;
    /**
     * 紧急联系人
     */
    @ApiModelProperty(value = "紧急联系人")
    private String emergencyContactName;
    /**
     * 紧急联系人联系方式
     */
    @ApiModelProperty(value = "紧急联系人联系方式")
    private String emergencyContactPhone;
    /**
     * 入职单位日期
     */
    @ApiModelProperty(value = "入职单位日期")
    private LocalDate entryDate;
    /**
     * 部门id
     */
    @ApiModelProperty(value = "部门id")
    @JsonSerialize(nullsUsing = NullSerializer.class)
    private Long deptId;
    /**
     * 部门名称
     */
    @ApiModelProperty(value = "部门名称")
    @JsonSerialize(nullsUsing = NullSerializer.class)
    private Byte deptName;
    /**
     * 管理级别
     */
    @ApiModelProperty(value = "管理级别")
    @JsonSerialize(nullsUsing = NullSerializer.class)
    private Byte manageLevel;
    /**
     * 编制类型
     */
    @ApiModelProperty(value = "编制类型")
    @JsonSerialize(nullsUsing = NullSerializer.class)
    private Byte establishmentCategory;
    /**
     * 职务类别
     */
    @ApiModelProperty(value = "职务类别")
    @JsonSerialize(nullsUsing = NullSerializer.class)
    private Byte postClass;
    /**
     * 职务id
     */
    @ApiModelProperty(value = "职务id")
    @JsonSerialize(nullsUsing = NullSerializer.class)
    private Long postId;
    /**
     * 职务名称
     */
    @ApiModelProperty(value = "职务名称")
    @JsonSerialize(nullsUsing = NullSerializer.class)
    private Byte postName;
    /**
     * 职级
     */
    @ApiModelProperty(value = "职级")
    @JsonSerialize(nullsUsing = NullSerializer.class)
    private Byte postLevel;
    /**
     * 岗位职责
     */
    @ApiModelProperty(value = "岗位职责")
    private String postDuty;
    /**
     * 异动事件
     */
    @ApiModelProperty(value = "异动事件")
    @JsonSerialize(nullsUsing = NullSerializer.class)
    private Byte changeEvent;
    /**
     * 异动类型
     */
    @ApiModelProperty(value = "异动类型")
    @JsonSerialize(nullsUsing = NullSerializer.class)
    private Byte changeCategory;
    /**
     * 异动原因
     */
    @ApiModelProperty(value = "异动原因")
    private String changeReason;
    /**
     * 异动时间
     */
    @ApiModelProperty(value = "异动时间")
    private LocalDate changeDate;
    /**
     * 人才类别
     */
    @ApiModelProperty(value = "人才类别")
    private String talentCategory;
    /**
     * 熟悉专业有何所长
     */
    @ApiModelProperty(value = "熟悉专业有何所长")
    private String expertise;
    /**
     * 合同期限
     */
    @ApiModelProperty(value = "合同期限")
    private LocalDate contractPeriodDate;
    /**
     * 后备干部
     */
    @ApiModelProperty(value = "后备干部")
    @JsonSerialize(nullsUsing = NullSerializer.class)
    private Byte reserveCadres;
    /**
     * 企业人才
     */
    @ApiModelProperty(value = "企业人才")
    @JsonSerialize(nullsUsing = NullSerializer.class)
    private Byte enterpriseTalent;
    /**
     * 工作经历
     */
    @ApiModelProperty(value = "工作经历")
    private String workExperience;
    /**
     * 备注
     */
    @ApiModelProperty(value = "备注")
    private String remark;
    /**
     * 审核状态
     */
    @ApiModelProperty(value = "审核状态")
    @JsonSerialize(nullsUsing = NullSerializer.class)
    private Byte auditStatus;
    /**
     * 当前流程id
     */
    @ApiModelProperty(value = "当前流程id")
    private String processInstanceId;
    /**
     * 当前流程状态id
     */
    @ApiModelProperty(value = "当前流程状态id")
    @JsonSerialize(nullsUsing = NullSerializer.class)
    private Long processStatusId;
    /**
     * 是否生效（完整流程已通过）
     */
    @ApiModelProperty(value = "是否生效（完整流程已通过）")
    @JsonSerialize(nullsUsing = NullSerializer.class)
    private Integer isEnabled;
    /**
     * 填报日期
     */
    @ApiModelProperty(value = "填报日期")
    private LocalDate reportTime;
    /**
     * 填报组织id
     */
    @ApiModelProperty(value = "填报组织id")
    @JsonSerialize(nullsUsing = NullSerializer.class)
    private Long reportOrgId;
    /**
     * 填报组织名称
     */
    @ApiModelProperty(value = "填报组织名称")
    private String reportOrgName;
    /**
     * 填报人员id
     */
    @ApiModelProperty(value = "填报人员id")
    @JsonSerialize(nullsUsing = NullSerializer.class)
    private Long reportUserId;
    /**
     * 填报人员名称
     */
    @ApiModelProperty(value = "填报人员名称")
    private String reportUserName;


}
